package org.example.eurekaopenfeignclient.service;

// 导入必要的类
import org.springframework.cloud.openfeign.FeignClient; // Feign 客户端核心注解
import org.springframework.stereotype.Service; // 声明为 Spring 的 Service 组件
import org.springframework.web.bind.annotation.RequestMapping; // 定义 HTTP 端点映射

// @Service 将接口声明为 Spring 容器管理的 Bean（通常与 FeignClient 配合使用）
// @FeignClient 定义这是一个 Feign 客户端，用于声明式 REST 调用
// name = "provider"：指定要调用的注册在 Eureka 上的服务名称（服务提供者的应用名）
// contextId = "hello"：当存在多个同名 Feign 客户端时，用于区分实例的上下文 ID
@Service
@FeignClient(name = "provider", contextId = "hello")
public interface Helloservice {
    
    // @RequestMapping 映射远程服务的具体端点
    // 这里定义的方法签名必须与远程服务提供者的接口一致
    // 当调用本接口的 hello() 方法时，实际会发送 HTTP 请求到服务提供者的 /hello 端点
    @RequestMapping("/hello")
    public String hello();
}